home *** CD-ROM | disk | FTP | other *** search
/ USA Bestseller / USA BESTSELLER Vol 1-95 (Hepp-Computer)(1995).iso / e027 / c64tech.doc < prev    next >
Text File  |  1993-08-26  |  7KB  |  188 lines

  1.  
  2.                C64S - Commodore 64 Software Emulator
  3.                     (C) 1991-1993 Miha Peternel
  4.                  Unofficial Technical Information
  5.  
  6. This is unofficial technical information on my C64 emulator.
  7. Feel free to ask further questions and comment possible changes,
  8. especially if you are/were a C64 hacker.
  9.  
  10.  
  11. WHAT'S THIS ?
  12.  
  13. C64S is a software emulator of Commodore 64. My aim is to make a 100% 
  14. emulation of C64. At the moment it requires 286 (or higher), a PC or 
  15. 100% compatible with 640K of RAM and VGA. If you don't like the beeper 
  16. noise, a Sound Blaster helps a lot.
  17.  
  18.  
  19. THE FACTS:
  20.  
  21. Emulator offers:
  22. - 6510 CPU emulation
  23. - VIC emulation on a VGA (320*200*16 at the moment, X-mode in the near
  24.   future - CAN YOU HELP?)
  25. - SID emulation on a PC speaker or Sound Blaster (That sounds COOL!)
  26. - C64 keyboard emulation with some replacements and some enhancements
  27.   (PC cursor up is like C64 shift + cursor up, Ctrl-Alt-Del is normal
  28.   reset, Ctrl-Alt-Ins is brutal reset - resets everything!)
  29. - 1541 disk drive emulation (uses original 1541 ROM and PC files for
  30.   disk images, I have done software for serial transfer of whole C64 
  31.   disks to PC)
  32. - C64 tape emulation (uses PC files for images - 1 file for a tape with
  33.   a header and directory, my magic software and simple connector allow
  34.   me to read C64 Turbo Tape files directly from PC!)
  35. - CIA timers work, but need major enhancements
  36.  
  37.  
  38. CAN I BE MORE SPECIFIC ?
  39.  
  40. 6510 CPU
  41. Runs in real mode, 286 and 386 optimized versions available.
  42. - legal instruction set operates 100%
  43. - illegal instructions operate partially and need to be reprogrammed
  44.   and optimized due to major enhancements in the emulator
  45. - $01 MMU works 100%
  46. - IRQ, NMI and RESET redirections ok
  47. - the cycles are not yet counted correctly (that's what I do now,
  48.   so the rasters dependent on CPU speed will look OK)
  49. - speed limitation not yet implemented
  50.  
  51. VIC
  52. The screen is updated 8 raster lines at a time to provide the highest
  53. speed but makes some effects look ugly. Line by line update is my
  54. priority at the moment. The screen refresh speed can be slowed down to
  55. increase emulation speed on slow machines.
  56. Implementation:
  57. - text modes - normal and multicolor
  58. - graphic modes - hires and multicolor
  59. - blank screen
  60. - sprites: normal, expanded, multicolor, more than 8 sprites just like
  61.   on a real C64, sprite/sprite priority ok, sprite/background priority
  62.   ok, sprite collision works 90% (it's a bug)
  63. - hardware soft scroll, allowing to move bad lines 8 raster lines down
  64. - shrunk screen
  65. - raster interrupts using $D011 and $D012 make possible to split screen,
  66.   show more than 8 sprites, provide timing...
  67. - border sprites and expanded screen can't run on 320*200 (I must turn
  68.   an X-mode on)
  69.   
  70. SID
  71. Sound is synthesized at 8 KHz (max C64 frequence is below 4 KHz). SB
  72. output is at 8 KHz, speaker output is doubled (16 KHz) to prevent
  73. base frequency noise. Anyway, the music sounds really cool, but you need
  74. a fast machine (386-40 or 486-33 MHz) to gain original speed.
  75. Implementation:
  76. - all 3 channels
  77. - sampled original amplitudes
  78. - original envelope timings
  79. - volume control
  80. - pulse width modulation
  81. but:
  82. - no filters
  83. - no channel to channel connection yet
  84. - no channel 3 output registers (coming soon)
  85.  
  86. CIA 1,2
  87. Keyboard emulation is 100%. Cursor keys emulate joystick(s) - PC joystick
  88. routines are nearly done. Timer A works OK. Timer B is a question of time. 
  89. Day-clock timer works 50%, because I still haven't program some control
  90. registers. CIA 2 is only partially emulated: it provides only VIC page 
  91. selection and NMI flag. Further enhancements on the way.
  92.  
  93. 1541 disk drive
  94. Emulator uses original VIC 1541 disk drive ROM, which allows to fully
  95. emulate disk drive operations. However, PC floppy units suck, so the
  96. disk contents is placed in a file containing original floppy image.
  97. C64 to PC goes via serial link (a whole disk at a time). In the
  98. registered version the emulator will allow multiple disk images and
  99. a nice selection screen.
  100.  
  101. C64 tapes
  102. Same as disks, the tape files are placed in a PC file which contains
  103. a header and directory to allow multiple C64 files to be placed in one
  104. PC file. C64 tape to PC goes directly using a simple connector plugged
  105. in to the parallel or printer port. Multiple tape files are supported.
  106. Tape and file selection is done by a built-in menu. Registered version
  107. will include Tape Tools to manage C64 tapes on PC and Turbo Tape to
  108. read C64 tapes directly - a connector is really simple - this is the
  109. fastest way to transfer files. You can speed up your tape and PC Turbo
  110. will still be able to read it.
  111.  
  112.  
  113. TESTED PROGRAMS:
  114. - Turbo Assembler, ok
  115. - Monitor 49152, 32768..., ok
  116. - BASIC, ok
  117.  
  118. TESTED GAMES:
  119. - Cybernoid II, ok
  120. - Krakout I, II, ok
  121. - Out Run, ok
  122. - Boulder Dash, 99%
  123. - Spy vs. Spy, ok
  124. - Commando, 99%
  125. - Green Beret, ok
  126. - Dark Side, ok
  127. - lots and lots more - 90% out of 60 tested work ok
  128.  
  129.  
  130. RELEASE:
  131.  
  132. C64S09A.ARJ will be sent to a FTP near you this week ! Check it !
  133. It has still some bugs and it fails to work on old slow 386
  134. machines (an exception occurs !?).
  135.  
  136.  
  137. FINAL 1.0 VERSION:
  138.  
  139. The emulator (called C64S) has been under construction for more than
  140. 2 years now, the source is 200K 100% assembler. The final version
  141. will be 386 only, though I also have a 286 version now !
  142. It will be released as SHAREWARE ($20) allowing some nice goodies in 
  143. the registered version:
  144. Tape Tools (to handle C64 tape images on PC), Turbo Tape (reads C64
  145. tapes directly from your PC with a simple connector)...
  146.  
  147.  
  148. BACK TO THE FUTURE:
  149.  
  150. The 1.0 release will be launched in November, because I live in
  151. Slovenia, but I came to Colorado for 2 months to work at HP. That
  152. means all my literature is at home, only the sources are here.
  153.  
  154. The main enhancements in sight for now:
  155. - line by line screen update to make the intros look better
  156. - CPU cycle counter (specific for NTSC and PAL)
  157. - CIA enhancements
  158.  
  159. Till the end of the year:
  160. - VGA X-mode to allow full screen graphics
  161. - 386 protected mode to increase performance
  162.  
  163.  
  164. HELP !
  165.  
  166. I desperately need some information on X-modes and protected mode.
  167. CAN YOU HELP ME ?
  168.  
  169.  
  170. CONTACTS:
  171.  
  172. My home address: (October 3rd 1993...)
  173. Miha Peternel
  174. Pot v Bitnje 66
  175. 64000 Kranj
  176. Slovenia, Europe
  177. Phone/Fax/Modem: +386-4-311-959
  178.  
  179. USA address: (...October 3rd 1993)
  180. Miha Peternel
  181. 2500 Flintridge Place
  182. Fort Collins
  183. Colorado 80521, USA
  184. Phone: +1-303-229-3670
  185. E-mail: miha@cnd.hp.com
  186.  
  187.   
  188.